<template>
  <PermissionContainer
    :jiBieArr="[2]"
    :tipArr="[, '优惠方案只对站点级别开放', '', , '']"
  >
    <div>
      <div class="card mx-auto shadow" style="width: 310px">
        <div class="card-body">
          <el-form
            ref="ruleForm"
            :model="ruleForm"
            :rules="rules"
            label-width="80px"
          >
            <el-form-item label="当前方案">
              {{ currentDiscountName }}
            </el-form-item>

            <el-form-item label="变改方案">
              <el-select
                v-model="ruleForm.discountSetting"
                placeholder="请选择优惠方案"
                clearable
                size="small"
                style="width: 100px"
                @change="discountSettingChang"
              >
                <el-option label="无" value="0"></el-option>
                <el-option label="满减" value="1"></el-option>
                <el-option label="立减" value="2"></el-option>
                <el-option label="直降" value="3"></el-option>
                <el-option label="阶梯直降" value="4"></el-option>
              </el-select>
              <button
                href="#"
                type="button"
                @click="save"
                class="btn btn-primary btn-sm ml-3 mb-1"
              >
                执行
              </button>
            </el-form-item>
          </el-form>
        </div>
      </div>

      <hr />
      <el-dialog
        :visible.sync="openDialog"
        width="520px"
        append-to-body
        :title="
          ['', '满减方案', '立减方案', '直降方案', '阶梯直降'][discountSetting]
        "
      >
        <el-form
          ref="updateForm"
          :model="updateForm"
          :rules="rules"
          label-width="170px"
        >
          <el-form-item label="方案名称" prop="grade" class="input-group-sm">
            <input
              v-model="updateForm.grade"
              placeholder=""
              class="form-control form-control-sm w-50"
            />
          </el-form-item>
          <el-form-item label="油品名称" prop="oilName">
            <select
              v-model="updateForm.oilName"
              class="form-control form-control-sm w-50"
              :disabled="ladderUp"
            >
              <option
                v-for="dict in filterOilNameOptions"
                :key="dict.oilName"
                :value="dict.oilName"
              >
                {{ dict.oilName }}
              </option>
              <option :value="updateForm.oilName" v-if="ladderUp">
                {{ updateForm.oilName }}
              </option>
            </select>
          </el-form-item>

          <!-- 阶梯直降没有此规则 -->
          <el-form-item
            label="优惠条件"
            prop="gasoilDiscountAmt"
            :rules="{
              required: discountSetting != 4,
              message: '请填写优惠条件',
              trigger: 'change',
            }"
            v-if="discountSetting != 4"
          >
            <el-radio-group
              v-model="updateForm.discountTerm"
              v-if="discountSetting == 3"
            >
              <el-radio label="2">按加油金额</el-radio>
              <el-radio label="1">按加油升数</el-radio>
            </el-radio-group>
            <div
              v-show="
                updateForm.discountTerm == 2 ||
                updateForm.discountTerm == 1 ||
                discountSetting == 1 ||
                discountSetting == 2
              "
            >
              {{ ["", "每满", "满", "满"][discountSetting] }}
              <!-- <el-input-number
              v-model="updateForm.discountAmt"
              size="mini"
              :min="0"
            /> -->
              <input
                v-model="updateForm.discountAmt"
                class="form-control form-control-sm"
                style="width: 50px; display: inline-block"
              />

              <span>{{
                updateForm.discountTerm == 1 && discountSetting == 3
                  ? "L"
                  : "元"
              }}</span>
              ，{{ ["", "减", "减", "每升优惠"][discountSetting] }}
              <!-- <el-input-number
              v-model="updateForm.gasoilDiscountAmt"
              size="mini"
              :min="0"
            /> -->
              <input
                v-model="updateForm.gasoilDiscountAmt"
                class="form-control form-control-sm"
                style="width: 50px; display: inline-block"
              />
              元
            </div>
          </el-form-item>

          <!-- 阶梯直降没有此规则 -->
          <el-form-item
            label="会员日"
            prop="discountSettingFlag"
            :rules="{
              required: discountSetting != 4,
              message: '请选择是否开启会员日',
              trigger: 'change',
            }"
            v-if="discountSetting != 4"
          >
            <el-radio-group v-model="updateForm.discountSettingFlag">
              <el-radio label="0">关闭</el-radio>
              <el-radio label="1">开启</el-radio>
            </el-radio-group>
          </el-form-item>

          <el-form-item
            label="会员日周期类型"
            prop="discountType"
            v-show="updateForm.discountSettingFlag == 1"
            :rules="{
              required: updateForm.discountSettingFlag == 1,
              message: '请选择会员日的周期类型',
              trigger: 'change',
            }"
          >
            <select
              v-model="updateForm.discountType"
              class="form-control form-control-sm w-50"
              @change="timeClear"
            >
              <option value="1">每周指定日</option>
              <option value="2">每月指定日</option>
              <option value="3">固定活动日</option>
            </select>

            <div
              v-show="updateForm.discountType != 3"
              style="
                display: flex;
                flex-wrap: wrap;
                border-style: solid;
                border-color: #f5f7fa;
              "
            >
              <div
                v-for="(item, index) in timeSelect[updateForm.discountType]"
                :key="index"
                style="margin: 3px"
              >
                <div
                  class="hover-style"
                  style="
                    border-radius: 5px;
                    font-weight: bold;
                    font-size: 12px;
                    cursor: pointer;
                  "
                  @click="clickCalendar(index)"
                >
                  <div>{{ item }}</div>
                  <div
                    v-if="updateForm.collectClickCalendar.indexOf(index) > -1"
                    style="
                      width: 4px;
                      height: 4px;
                      border-radius: 50%;
                      background-color: red;
                      position: relative;
                      left: calc(50% - 2px);
                    "
                  ></div>
                  <div v-else style="width: 4px; height: 4px"></div>
                </div>
              </div>
            </div>
            <div v-show="updateForm.discountType == 3">
              <el-date-picker
                clearable
                size="small"
                style="margin-top: 10px; width: 200px"
                v-model="updateForm.collectClickDay"
                type="dates"
                value-format="yyyy-MM-dd"
                placeholder="选择提醒时间设置"
              >
              </el-date-picker>
            </div>
          </el-form-item>

          <el-form-item
            label="会员日优惠条件"
            prop="discountActivityAmt"
            v-show="updateForm.discountSettingFlag == 1"
            :rules="{
              required: updateForm.discountSettingFlag == 1,
              message: '请填写会员日的优惠金额',
              trigger: 'change',
            }"
          >
            <div>
              {{ ["", "每满", "满", "满"][discountSetting] }}
              <!--
            <el-input-number
              v-model="updateForm.discountAmt"
              size="mini"
              :min="0"
              disabled
            />
            -->
              <input
                v-model="updateForm.discountAmt"
                class="form-control form-control-sm"
                style="width: 50px; display: inline-block"
                disabled
              />

              <span>{{
                updateForm.discountTerm == 1 && discountSetting == 3
                  ? "L"
                  : "元"
              }}</span>
              ，{{ ["", "减", "减", "每升优惠"][discountSetting] }}
              <input
                v-model="updateForm.discountActivityAmt"
                class="form-control form-control-sm"
                style="width: 50px; display: inline-block"
              />元
            </div>
          </el-form-item>

          <el-form-item label="叠加等级优惠" prop="vipDiscountyPlus">
            <el-radio-group v-model="updateForm.vipDiscountyPlus">
              <el-radio label="1">叠加</el-radio>
              <el-radio label="0">不叠加</el-radio>
            </el-radio-group>
            <!--
          <div style="margin-left: 20px; color: red; font-size: 12px">
            注："否" 客户只享受 {{ discountName }} 优惠
          </div>
          -->
          </el-form-item>

          <!-- 只有阶梯直降有此规则 -->
          <el-form-item
            label="优惠条件"
            prop="discountTerm"
            :rules="{
              required: discountSetting == 4,
              message: '请填写优惠条件',
              trigger: 'change',
            }"
            v-if="discountSetting == 4"
          >
            <el-radio-group v-model="updateForm.discountTerm">
              <el-radio label="2">按加油金额</el-radio>
              <el-radio label="1">按加油升数</el-radio>
            </el-radio-group>
          </el-form-item>

          <!-- 只有阶梯直降有此规则 -->
          <el-form-item
            label="阶梯设置"
            prop="list"
            v-if="discountSetting == 4"
          >
            <el-button
              icon="el-icon-plus"
              size="mini"
              class="mb-3 mr-4"
              @click="addLadder"
              type="secondary"
            >
              添加规则
            </el-button>
          </el-form-item>

          <div
            class="mx-auto mb-4 bg-light pt-4 pb-2 px-1 rounded"
            style="width: 450px"
            v-if="discountSetting == 4"
          >
            <div
              class="input-group input-group-sm mb-4 mt-1"
              v-for="(item, index) in updateForm.list"
              :key="index"
            >
              <input
                type="text"
                class="form-control"
                v-model="item.discountAmt"
              />
              <div class="input-group-append">
                <span class="input-group-text">
                  {{
                    updateForm.discountTerm == 1
                      ? "升&lt;= 加油升数 &lt;"
                      : "元&lt;= 加油金额 &lt;"
                  }}
                </span>
              </div>
              <input
                type="text"
                class="form-control"
                v-model="item.discountAmtEnd"
              />
              <div class="input-group-append">
                <span class="input-group-text"
                  >{{
                    updateForm.discountTerm == 1 ? "升" : "元"
                  }}，每升优惠</span
                >
              </div>
              <input
                type="text"
                class="form-control"
                v-model="item.gasoilDiscountAmt"
              />
              <div class="input-group-append">
                <span class="input-group-text">元</span>
              </div>
              <div class="input-group-append" id="button-addon4">
                <button
                  class="btn btn-danger"
                  type="button"
                  @click="delLadder(index)"
                >
                  删除
                </button>
              </div>
            </div>
          </div>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="handleSubmit">确 定</el-button>
          <el-button @click="cancelSubmit">取 消</el-button>
        </div>
      </el-dialog>

      <el-form
        :model="queryParams"
        ref="queryForm"
        :inline="true"
        label-width="68px"
        v-show="discountSetting != 0"
        class="mx-auto"
      >
        <div>
          <el-button
            icon="el-icon-plus"
            size="mini"
            class="mb-3 mr-4"
            @click="handleAdd"
            style="float: right"
            type="warning"
          >
            {{
              this.discountSetting == 1
                ? "添加满减方案规则"
                : this.discountSetting == 2
                ? "添加立减方案规则"
                : this.discountSetting == 3
                ? "添加直降方案规则"
                : this.discountSetting == 4
                ? "添加阶梯直降规则"
                : "无"
            }}
          </el-button>
        </div>
      </el-form>
      <el-table
        :data="discountList"
        v-show="discountSetting != 0 && discountSetting != 4"
        class="shadow"
      >
        <af-table-column label="id" align="left" prop="id" v-if="false" />
        <af-table-column label="方案名称" align="left" prop="grade" />
        <af-table-column label="油品名称" align="left" prop="oilName" />
        <af-table-column
          label="优惠条件"
          align="left"
          v-if="discountSetting == 3"
        >
          <template slot-scope="scope">
            满 {{ scope.row.discountAmt }}
            {{ scope.row.discountTerm == 2 ? "元" : "L" }}，每升优惠
            {{ scope.row.gasoilDiscountAmt }} 元
          </template>
        </af-table-column>
        <af-table-column
          label="优惠条件"
          align="left"
          v-if="discountSetting == 1"
        >
          <template slot-scope="scope">
            每满 {{ scope.row.discountAmt }} 元，减
            {{ scope.row.gasoilDiscountAmt }} 元
          </template>
        </af-table-column>
        <af-table-column
          label="优惠条件"
          align="left"
          v-if="discountSetting == 2"
        >
          <template slot-scope="scope">
            满 {{ scope.row.discountAmt }} 元，减
            {{ scope.row.gasoilDiscountAmt }} 元
          </template>
        </af-table-column>
        <af-table-column
          label="会员日"
          align="left"
          v-if="discountSetting != 4"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.discountSettingFlag == 0"> 无活动 </span>
            <span v-else-if="scope.row.discountSettingFlag == 1">
              {{ discountSettingTranslate(scope.row) }}
            </span>
          </template>
        </af-table-column>
        <af-table-column
          label="叠加等级优惠"
          align="left"
          prop="vipDiscountyPlus"
          :formatter="vipDiscountyPlusFotmat"
        />
        <!--
      <af-table-column
        label="叠加劵"
        align="left"
        prop="couponPlus"
        :formatter="couponPlusFotmat"
      />
      -->
        <af-table-column
          label="优惠方案类型"
          v-if="false"
          align="left"
          prop="discountPlanType"
        />
        <af-table-column
          label="操作"
          align="left"
          class-name="small-padding fixed-width"
        >
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              @click="handleDelete(scope.row)"
              >删除</el-button
            >
            <el-button
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click="handleUpdate(scope.row)"
              >修改</el-button
            >
          </template>
        </af-table-column>
      </el-table>
      <el-table
        :data="discountListTep"
        v-show="discountSetting == 4"
        type="expand"
        class="shadow"
      >
        <af-table-column type="expand">
          <template slot-scope="props">
            <div class="container">
              <div class="row">
                <div
                  class="input-group input-group-sm mb-4 mt-1"
                  :class="[props.row.list.length == 1 ? 'mx-auto' : 'col-lg-6']"
                  v-for="(item, index) in props.row.list"
                  :key="index"
                  style="max-width: 600px; min-width: 450px"
                >
                  <div class="input-group-append">
                    <span class="input-group-text">
                      规则 {{ index + 1 }}：
                    </span>
                  </div>
                  <input
                    type="text"
                    class="form-control"
                    v-model="item.discountAmt"
                    disabled
                  />
                  <div class="input-group-append">
                    <span class="input-group-text">
                      {{
                        item.discountTerm == 1
                          ? "升&lt;= 加油升数 &lt;"
                          : "元&lt;= 加油金额 &lt;"
                      }}
                    </span>
                  </div>
                  <input
                    type="text"
                    class="form-control"
                    v-model="item.discountAmtEnd"
                    disabled
                  />
                  <div class="input-group-append">
                    <span class="input-group-text">{{
                      item.discountTerm == 1 ? "升，" : "元，"
                    }}</span>
                  </div>
                  <div class="input-group-append">
                    <span class="input-group-text">每升优惠</span>
                  </div>
                  <input
                    type="text"
                    class="form-control"
                    v-model="item.gasoilDiscountAmt"
                    disabled
                  />
                  <div class="input-group-append">
                    <span class="input-group-text">元</span>
                  </div>
                  <div class="input-group-append" id="button-addon4"></div>
                </div>
              </div>
            </div>
          </template>
        </af-table-column>
        <af-table-column label="方案名称" align="left" prop="grade" />
        <af-table-column label="油品名称" align="left" prop="oilName" />
        <af-table-column
          label="叠加等级优惠"
          align="left"
          prop="vipDiscountyPlus"
          :formatter="vipDiscountyPlusFotmat"
        />
        <!--
      <af-table-column
        label="叠加劵"
        align="left"
        prop="couponPlus"
        :formatter="couponPlusFotmat"
      />
      -->
        <af-table-column
          label="优惠方案类型"
          v-if="false"
          align="left"
          prop="discountPlanType"
        />
        <af-table-column
          label="操作"
          align="left"
          class-name="small-padding fixed-width"
          width="200px"
        >
          <template slot-scope="scope">
            <el-button
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click="handleLadderUpdata(scope.row)"
              >修改规则</el-button
            >
            <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              @click="handleDeleteLadder(scope.row)"
              >删除</el-button
            >
          </template>
        </af-table-column>
      </el-table>
    </div>
  </PermissionContainer>
</template>

<script>
import {
  listPlan,
  getPlan,
  delPlan,
  addPlan,
  updatePlan,
  exportPlan,
  addMarketPlanInfo,
  deleteMarketPlan,
} from "@/api/market/plan";
import { getStationPay, updatePay } from "@/api/station/pay";
import { getDept } from "@/api/system/dept";
import { listPrice } from "@/api/station/price";
export default {
  name: "Market_Discount",
  data() {
    const validatorGasoilDiscountAmt = (rule, value, callback) => {
      if (this.discountSetting == 3) {
        if (
          this.updateForm.discountTerm === undefined ||
          this.updateForm.discountTerm === ""
        ) {
          callback(new Error("请选择优惠方式"));
          return;
        }
      }
      const start = +this.updateForm.discountAmt;
      const end = +this.updateForm.gasoilDiscountAmt;
      if (isNaN(start) || isNaN(end)) {
        callback(new Error("检查优惠方式完整性"));
        return;
      }
      callback();
    };
    const validatorLadderList = (rule, value, callback) => {
      if (this.discountSetting != 4) {
        return;
      }

      if (this.updateForm.list.length < 1 || !this.updateForm.list) {
        callback(new Error("请设置优惠的阶梯"));
        return;
      }
      this.updateForm.list.map((ele) => {
        if (
          ele.discountAmt == "" ||
          ele.discountAmt == null ||
          ele.discountAmtEnd == "" ||
          ele.discountAmtEnd == null ||
          ele.gasoilDiscountAmt == "" ||
          ele.gasoilDiscountAmt == null
        ) {
          callback(new Error("请检查阶梯填入信息的完整性"));
          return;
        }
        if (
          isNaN(+ele.discountAmtEnd) ||
          isNaN(+ele.discountAmt) ||
          isNaN(+ele.gasoilDiscountAmt)
        ) {
          callback(new Error("请检查拼写，规则填入的必须是有效数字"));
          return;
        }
        if (+ele.discountAmtEnd <= +ele.discountAmt) {
          callback(new Error("您填写的一条规则里，起始值比结束值大"));
          return;
        }
      });
      const sortList = JSON.parse(JSON.stringify(this.updateForm.list));
      const sortedList = sortList.sort((q, w) => {
        return q.discountAmt - w.discountAmt;
      });

      sortedList.reduce((prev, curr, ind, arr) => {
        if (prev.discountAmtEnd > curr.discountAmt) {
          callback(new Error("您填写的规则起始值存在冲突，请检查"));
          return;
        }
        return curr;
      });
      callback();
    };

    return {
      testd: 1,
      pageStatus: 0,
      discountList: [],
      total: 0,
      oilNameOptions: [],
      title: "",
      openDialog: false,
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        grade: null,
        discountWay: null,
        gasoilDiscountLitre: null,
        dieseloilDiscountLitre: null,
        gradeType: null,
        gasoilConsume: null,
        gasoilGrowthValue: null,
        dieseloilConsume: null,
        dieseloilGrowthValue: null,
        growthValue: null,
        date: null,
        deductionGrowthValue: null,
      },
      updateFormDynamic1: ["", "满", "每满", "满"],
      updateFormDynamic2: ["", "减", "减", "每升优惠"],
      ruleForm: {},
      // 表单校验
      rules: {
        grade: [{ required: true, message: "请输入方案名称", trigger: "blur" }],
        oilName: [
          { required: true, message: "请选择油品名称", trigger: "change" },
        ],
        discountTerm: [
          { required: true, message: "选择油品名称", trigger: "change" },
        ],
        gasoilDiscountAmt: [
          { validator: validatorGasoilDiscountAmt, trigger: "change" },
        ],
        discountAmt: [
          { required: true, message: "请填写优惠金额", trigger: "blur" },
        ],
        vipDiscountyPlus: [
          {
            required: true,
            message: "选择等级优惠是否叠加",
            trigger: "change",
          },
        ],
        // couponPlus: [
        //   { required: true, message: "选择可否叠加券", trigger: "change" },
        // ],
        list: [{ validator: validatorLadderList, trigger: "change" }],
      },
      dtrules: {},
      discountSetting: 0,
      updateForm: {
        collectClickCalendar: [],
        collectClickDay: [],
      },
      currentDiscountName: "",
      timeSelect: [
        ,
        ["周天", "周一", "周二", "周三", "周四", "周五", "周六"],
        [
          "01",
          "02",
          "03",
          "04",
          "05",
          "06",
          "07",
          "08",
          "09",
          "10",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "18",
          "19",
          "20",
          "21",
          "22",
          "23",
          "24",
          "25",
          "26",
          "27",
          "28",
          "29",
          "30",
          "31",
        ],
      ],
      discountListTep: [],
      ladderUp: false,
    };
  },
  computed: {
    discountName() {
      return this.discountSetting == 1
        ? "满减"
        : this.discountSetting == 2
        ? "立减"
        : this.discountSetting == 3
        ? "直降"
        : this.discountSetting == 4
        ? "阶梯直降"
        : "无";
    },
    filterOilNameOptions() {
      const discountList =
        this.discountSetting == 4 ? this.discountListTep : this.discountList;
      return this.oilNameOptions.filter((ele) => {
        let flag = true;
        discountList.forEach((item) => {
          if (ele.oilName == item.oilName) {
            flag = false;
          }
        });
        return flag;
      });
    },
  },
  created() {
    this.setPageStatus();
    this.init();
  },
  methods: {
    handleLadderUpdata(row) {
      this.updateForm = row;
      this.ladderUp = true;
      this.openDialog = true;
    },
    delLadder(index) {
      this.updateForm.list.splice(index, 1);
      if (this.updateForm.list < 1) {
        this.updateForm.list.push({
          discountAmtEnd: null,
          discountAmt: null,
          gasoilDiscountAmt: null,
        });
        this.updateForm = { ...this.updateForm };
      }
    },
    addLadder(e) {
      this.updateForm.list.push({
        discountAmtEnd: null,
        discountAmt: null,
        gasoilDiscountAmt: null,
      });
      this.updateForm = { ...this.updateForm };
    },
    test(e) {},
    init() {
      listPrice().then((response) => {
        this.oilNameOptions = response.rows;
      });
      this.getPay().then(() => {
        this.getList();
      });
    },
    setPageStatus() {
      this.queryPageStatus([2]).then((res) => {
        this.pageStatus = res;
      });
    },
    timeClear() {
      this.updateForm.collectClickCalendar = [];
      this.updateForm.collectClickDay = [];
    },
    getPay() {
      return getStationPay().then((response) => {
        this.ruleForm = response.data;
        this.discountSetting = response.data.discountSetting;
        this.currentDiscountName = this.discountName;
      });
    },
    save() {
      this.$refs["ruleForm"].validate((valid) => {
        if (valid) {
          if (this.ruleForm.deptId != null) {
            let upPromise = null;
            let e = this.ruleForm.discountSetting;
            if (e == "0") {
              upPromise = updatePay(this.ruleForm).then((response) => {
                this.msgSuccess("优惠方案设置成功");
              });
            } else if (e == "1") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("满减规则下无方案");
                return;
              }
            } else if (e == "2") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("立减规则下无方案");
                return;
              }
            } else if (e == "3") {
              if (this.discountList.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("直降规则下无方案");
                return;
              }
            } else if (e == "4") {
              if (this.discountListTep.length > 0) {
                upPromise = updatePay(this.ruleForm).then((response) => {
                  this.msgSuccess("优惠方案设置成功");
                });
              } else {
                this.msgError("直降规则下无方案");
                return;
              }
            }
            upPromise
              .catch((err) => {
                this.msgError("设置时出错，请刷新后重试~");
              })
              .then((res) => {
                this.getPay();
              });
          } else {
            this.getPay();
          }
        }
      });
    },
    discountSettingChang(e) {
      this.discountSetting = e;
      this.getList();
    },
    getList() {
      const query = {
        pageNum: 1,
        pageSize: 100,
        discountPlanType: this.discountSetting,
      };
      listPlan(query).then((response) => {
        if (this.discountSetting == 4) {
          this.discountListTep = response.rows;
          return;
        }
        this.discountList = response.rows;
        this.total = response.total;
      });
    },
    vipDiscountyPlusFotmat(row, column) {
      if (row.vipDiscountyPlus === "1") {
        return "是";
      } else if (row.vipDiscountyPlus === "0") {
        return "否";
      }
    },
    couponPlusFotmat(row, column) {
      if (row.couponPlus === "1") {
        return "是";
      } else if (row.couponPlus === "0") {
        return "否";
      }
    },
    handleAdd() {
      this.openDialog = true;
      this.ladderUp = false;
      this.updateForm = {
        discountPlanType: this.discountSetting,
        collectClickDay: [],
        collectClickCalendar: [],
      };
      if (this.discountSetting == 4) {
        this.updateForm.list = [
          {
            discountAmtEnd: null,
            discountAmt: null,
            gasoilDiscountAmt: null,
          },
        ];
      }
    },
    handleSubmit() {
      this.$refs["updateForm"].validate((valid) => {
        if (valid) {
          // 会员日特殊处理
          if (
            this.updateForm.discountSettingFlag == "1" &&
            this.discountSetting != "4"
          ) {
            if (
              this.updateForm.discountType == "1" ||
              this.updateForm.discountType == "2"
            ) {
              this.updateForm.discountDate =
                this.updateForm.collectClickCalendar.toString();
            } else {
              this.updateForm.discountDate =
                this.updateForm.collectClickDay.toString();
            }
          }
          // 阶梯直降
          if (this.discountSetting == "4") {
            addMarketPlanInfo(this.updateForm).then((res) => {
              this.msgSuccess("新增成功");
              this.openDialog = false;
              this.getList();
              return;
            });
            return;
          }

          if (!!this.updateForm.id) {
            addPlan(this.updateForm).then((response) => {
              this.msgSuccess("修改成功");
              this.openDialog = false;
              this.getList();
            });
          } else {
            addPlan(this.updateForm).then((response) => {
              this.msgSuccess("新增成功");
              // if(this.ladderUp){
              //   this.msgSuccess("修改成功2");
              // }else{
              //   this.msgSuccess("新增成功3");
              // }
              this.openDialog = false;
              this.getList();
            });
          }
        }
      });
    },
    clickCalendar(index) {
      if (this.updateForm.collectClickCalendar.indexOf(index) === -1) {
        this.updateForm.collectClickCalendar.push(index);
      } else if (this.updateForm.collectClickCalendar.indexOf(index) > -1) {
        const temp = this.updateForm.collectClickCalendar.findIndex((ele) => {
          return ele == index;
        });
        this.updateForm.collectClickCalendar.splice(temp, 1);
      }
      this.$refs.updateForm.validateField("discountType");
      this.updateForm = { ...this.updateForm };
    },
    cancelSubmit() {
      this.openDialog = false;
    },

    /** 修改按钮操作 */
    handleUpdate(row) {
      const id = row.id;
      this.ladderUp = true;
      row = JSON.parse(JSON.stringify(row));
      if (row.discountType == 1 || row.discountType == 2) {
        row.collectClickCalendar = row.discountDate
          .split(",")
          .filter((ele) => ele !== "")
          .map((ele) => +ele);
        row.collectClickDay = [];
      } else if (row.discountType == 3) {
        row.collectClickDay = row.discountDate
          .split(",")
          .filter((ele) => ele !== "");
        row.collectClickCalendar = [];
      }
      this.updateForm = row;
      this.openDialog = true;
      // this.title = "修改满减优惠";
      // this.openDialog = true;
      // this.updateForm = row;
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id;
      this.$confirm("是否确认删除满减优惠方案?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(function () {
          return delPlan(ids);
        })
        .then(() => {
          this.getList();
          this.msgSuccess("删除成功");
        });
    },
    handleDeleteLadder(row) {
      const oilName = row.oilName;
      this.$confirm("是否确认该油品的阶梯直降?", "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(function () {
          return deleteMarketPlan({
            oilName: oilName,
            discountPlanType: "4",
          });
        })
        .then(() => {
          this.getList();
          this.msgSuccess("删除成功");
        });
    },
    // /** 导出按钮操作 */
    // handleExport() {
    //   const queryParams = this.queryParams;
    //   this.$confirm("是否确认导出所有优惠设置数据项?", "警告", {
    //     confirmButtonText: "确定",
    //     cancelButtonText: "取消",
    //     type: "warning",
    //   })
    //     .then(function () {
    //       return exportPlan(queryParams);
    //     })
    //     .then((response) => {
    //       this.download(response.msg);
    //     });
    // },
    discountSettingTranslate(row) {
      if (row.discountSettingFlag == 0) {
        return "未设置";
      }
      // if (this.discountList.integralActivity == 0) {
      //   return "";
      // }

      let timeString = "";
      const discountType = row.discountType;

      if (discountType == 1) {
        timeString += "每周的";
      }
      if (discountType == 2) {
        timeString += "每月的";
      }
      if (discountType == 3) {
        timeString += "指定的日期 ";
      }
      if (discountType == 1 || discountType == 2) {
        (row.discountDate || "")
          .split(",")
          .filter((ele) => {
            return ele !== "";
          })
          .forEach((ele) => {
            timeString += this.timeSelect[discountType][ele] + "、";
          });
      } else if (discountType == 3) {
        timeString += row.discountDate.toString();
      }

      timeString = timeString.replace(/(、)$/g, "") + " 优惠：";
      if (this.discountSetting == 3) {
        timeString +=
          "满" +
          row.discountAmt +
          (row.discountTerm == 2 ? "元" : "L") +
          "，每升优惠" +
          row.discountActivityAmt +
          "元";
      } else if (this.discountSetting == 1) {
        timeString +=
          "每满" + row.discountAmt + "元，减" + row.discountActivityAmt + "元";
      } else if (this.discountSetting == 2) {
        timeString +=
          "满" + row.discountAmt + "元，减" + row.discountActivityAmt + "元";
      }
      return timeString;
    },
  },
};
</script>
<style></style>
